package web;

import java.util.Date;
import java.util.List;

import javax.naming.InitialContext;
import javax.naming.NamingException;

import service.GestionConsultation;
import dto.LieuVO;
import dto.TrajetVO;
import dto.VoyageVO;

public class GestionConsultationDelegate implements GestionConsultation {

	private String[] tabProj = { "org.bovoyage" };

	private GestionConsultation gestionConsultationEjb;

	public GestionConsultationDelegate() {
		initEjbGestionConsultation();
	}

	public void initEjbGestionConsultation() {
		// pas de fichier de conf client_jndi.properties comme avec TestEjbApp
		// le contexte pointe automatiquement vers le serveur de nom JBoss
		InitialContext ic = null;
		try {
			ic = new InitialContext();
		} catch (NamingException e1) {
			e1.printStackTrace();
			return;
		}
		System.out.println("InitialContext créé");
		for (String n : tabProj) {
			try {
				// on peut choisir local ou remote en fonction du deploiement
				gestionConsultationEjb = (GestionConsultation) ic.lookup(n
						+ "/GestionConsultationBean/local");
			} catch (Exception e) {
				System.out.println(e.getStackTrace()[0]);
			}
		}
		if (gestionConsultationEjb == null) {
			System.out.println("Lookup KO");
			return;
		}
		System.out.println("Lookup effectué");
	}

	@Override
	public List<LieuVO> getAllLieux() {
		return gestionConsultationEjb.getAllLieux();
	}

	@Override
	public List<VoyageVO> getAllVoyages() {
		return gestionConsultationEjb.getAllVoyages();
	}

	@Override
	public VoyageVO getVoyageById(long id){
		return gestionConsultationEjb.getVoyageById(id);
	}

	@Override
	public List<TrajetVO> getTrajets(String depart, String arrivee, Date allee,
			Date retour) {
		return gestionConsultationEjb
				.getTrajets(depart, arrivee, allee, retour);
	}

}
